#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;

struct Nodo{
   int cant;
   vector<int> hijos;
};

void func(vector<Nodo>& g, int n, int t){
   if(g[n].hijos.size() == 0){
      g[n].cant = 1;
   } else{
      for(unsigned i=0; i<g[n].hijos.size(); i++){
         func(g, g[n].hijos[i], t);
      }
      
      vector<int> cantidades;
      for(unsigned i=0; i<g[n].hijos.size(); i++){
         cantidades.push_back(g[ g[n].hijos[i] ].cant);
      }
      sort(cantidades.begin(), cantidades.end());
      
      unsigned cant = ceil(g[n].hijos.size() * ((float) t / 100));

      int suma = 0;
      for(unsigned i=0; i<cant; i++){
         suma += cantidades[i];
      }
      
      g[n].cant = suma;
   }
}

int main(){
   int n, t, h;
   
   cin >> n >> t;
   while(n != 0 && t != 0){
      vector<Nodo> grafo(n+1);
      
      for(int i=1; i<=n; i++){         
         cin >> h;
         grafo[h].hijos.push_back(i);
      }

      func(grafo, 0, t);
      cout << grafo[0].cant << endl;

      cin >> n >> t;   
   }
}
